package com.zj.fx.model.month;

import cn.hutool.core.date.DateUtil;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

@Data
public class MonthSupplytaskDtl implements Serializable {
    private static final long serialVersionUID = 1L;


    @ApiModelProperty(value = "主键ID")
    private String id;

    @ApiModelProperty(value = "供电所填报任务id")
    private String fkTaskId;

    @ApiModelProperty(value = "主任务年月")
    private String taskMonth;

    @ApiModelProperty(value = "指标编号")
    private String num;

    @ApiModelProperty(value = "指标名称")
    private String name;

    @ApiModelProperty(value = "目标值")
    private String targetScore;

    @ApiModelProperty(value = "计量单位")
    private String measuringUnit;

    @ApiModelProperty(value = "比较数量")
    private String countAmount;

    @ApiModelProperty(value = "比较扣分")
    private String countRegulation;

    @ApiModelProperty(value = "评价周期（0月度/1季度/2半年/3年初/4年末）")
    private String evaluationPeriod;

    @ApiModelProperty(value = "责任部门id")
    private String deptId;

    @ApiModelProperty(value = "责任部门名称")
    private String deptName;

    @ApiModelProperty(value = "责任部门id")
    private String departmentId;

    @ApiModelProperty(value = "责任部门名称")
    private String departmentName;

    @ApiModelProperty(value = "是否有审核项")
    private String isaudit;

    @ApiModelProperty(value = "评分策略（1输入量值（目标）/2是否/3输入量值）")
    private String tactics;

    @ApiModelProperty(value = "所属父级项目ID")
    private String fkParentProjectId;

    @ApiModelProperty(value = "是否自动填写（0否/1是）")
    private Integer isauto;

    @ApiModelProperty(value = "供电所id")
    private String fkSupplyId;

    @ApiModelProperty(value = "供电所名称")
    private String supplyName;

    @ApiModelProperty(value = "自评价得分结果(4级项目为得分分数，5级项目为单项扣分对应分数)")
    private String selfScore;

    @ApiModelProperty(value = "自评价指标值")
    private String selfValue;

    @ApiModelProperty(value = "责任部门审查得分结果")
    private String reviewScore;

    @ApiModelProperty(value = "责任部门审查指标值")
    private String reviewValue;

    @ApiModelProperty(value = "责任部门审查评分说明")
    private String reviewRemark;

    @ApiModelProperty(value = "是否被责任部门审核修正（0否/1是）")
    private String isAuditedit;

    @ApiModelProperty(value = "分公司审查得分结果")
    private String subreviewScore;

    @ApiModelProperty(value = "分公司审查指标值")
    private String subreviewValue;

    @ApiModelProperty(value = "分公司审查评分说明")
    private String subreviewRemark;

    @ApiModelProperty(value = "是否被分公司审核修正（0否/1是）")
    private String isSubauditedit;

    @ApiModelProperty(value = "项目层级（4：四级 5：五级）")
    private String proGrade;

    @ApiModelProperty(value = "项目满分")
    private String fullMark;

    @ApiModelProperty(value = "标签页码（五级项目编码第一位）")
    private String tab;

    @ApiModelProperty(value = "评分策略为是否时对应扣分选项（0：否，1：是）")
    private Integer typeOption;

    @ApiModelProperty(value = "填报任务状态(0未填报/1分公司审核中/2分公司驳回调整/3责任部门审核中/4责任部门驳回调整/5审核完成/6完成分公司驳回项调整/7完成责任部门审核项调整)")
    private String taskState;

    @ApiModelProperty(value = "驳回原因")
    private String rejectReason;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "驳回时间")
    private Date rejectDate;

    @ApiModelProperty(value = "备注")
    private String memo;

    @ApiModelProperty(value = "拓展字段")
    private String content;

    @ApiModelProperty(value = "拓展字段")
    private String score;

    @ApiModelProperty(value = "拓展字段--责任部门审核后得分")
    private String proscore;

    @ApiModelProperty(value = "拓展字段--分公司审核后得分")
    private String subscore;

    @ApiModelProperty(value = "拓展字段--各项满分求和")
    private String sumFullMark;

    @ApiModelProperty(value = "拓展字段--自我评分总分")
    private String sumSelfScore;

    @ApiModelProperty(value = "拓展字段--总扣分之和")
    private String sumDeduct;

    @ApiModelProperty(value = "拓展字段--审核分之和")
    private String sumAudit;

    @ApiModelProperty(value = "拓展字段--审核更正得分")
    private String auditScore;

    @ApiModelProperty(value = "拓展字段--三级编码")
    private String threegradeNum;

    @ApiModelProperty(value = "拓展字段---")
    private String type;

    @ApiModelProperty(value = "拓展字段---是否具备辅助文档")
    private String ishasStep;

    @ApiModelProperty(value = "拓展字段---是否有支撑文件")
    private String ishasSupport;

    @ApiModelProperty(value = "拓展字段---是否有模板")
    private String ishasTemp;

    @ApiModelProperty(value = "拓展字段---是否有佐证文件")
    private String ishasProof;

    @ApiModelProperty(value = "拓展字段---是否自评分扣分")
    private String isselfdeduct;

    @ApiModelProperty(value = "拓展字段---是否审核后扣分")
    private String isauditdeduct;

    public MonthSupplytaskDtl(String id, String fkTaskId, String taskMonth, String num, String name, String targetScore, String measuringUnit, String countAmount, String countRegulation, String evaluationPeriod, String deptId, String deptName, String tactics, String fkParentProjectId, Integer isauto, String fkSupplyId, String supplyName, String selfScore, String selfValue, String reviewScore, String reviewValue, String reviewRemark, String isAuditedit, String subreviewScore, String subreviewValue, String subreviewRemark, String isSubauditedit, String proGrade, String fullMark, String tab, Integer typeOption, String taskState, String rejectReason, Date rejectDate, String memo) {

        this.id = id;

        this.fkTaskId = fkTaskId;

        this.taskMonth = taskMonth;

        this.num = num;

        this.name = name;

        this.targetScore = targetScore;

        this.measuringUnit = measuringUnit;

        this.countAmount = countAmount;

        this.countRegulation = countRegulation;

        this.evaluationPeriod = evaluationPeriod;

        this.deptId = deptId;

        this.deptName = deptName;

        this.tactics = tactics;

        this.fkParentProjectId = fkParentProjectId;

        this.isauto = isauto;

        this.fkSupplyId = fkSupplyId;

        this.supplyName = supplyName;

        this.selfScore = selfScore;

        this.selfValue = selfValue;

        this.reviewScore = reviewScore;

        this.reviewValue = reviewValue;

        this.reviewRemark = reviewRemark;

        this.isAuditedit = isAuditedit;

        this.subreviewScore = subreviewScore;

        this.subreviewValue = subreviewValue;

        this.subreviewRemark = subreviewRemark;

        this.isSubauditedit = isSubauditedit;

        this.proGrade = proGrade;

        this.fullMark = fullMark;

        this.tab = tab;

        this.typeOption = typeOption;

        this.taskState = taskState;

        this.rejectReason = rejectReason;

        this.rejectDate = rejectDate;

        this.memo = memo;

    }

    public MonthSupplytaskDtl() {
        super();
    }

    public String dateToStringConvert(Date date) {
        if (date != null) {
            return DateUtil.format(date, "yyyy-MM-dd HH:mm:ss");
        }
        return "";
    }


}